import { reqUserInfoByUserid, updateUserInfo } from '../../api/user';
import { getStorage, setStorage, clearStorage, removeStorage } from '../../utils/storage';
Page({
    data: {
        avatarUrl: '', // 头像 URL
        nickname: '默默', // 昵称
        phone: '', // 手机号
        userinfo: '' // 用户信息
    },
    
    onLoad: function(options) {
        this.loadUserInfo();
    },

    // 加载用户信息
    loadUserInfo: function() {
        const userinfo = getStorage("userinfo");
        console.log("这是获取到的userinfo的id");
        console.log(userinfo.userid);
        // 调用 reqUserInfoByUserid 获取用户信息
        reqUserInfoByUserid(userinfo.userid).then(
            res => {
                console.log("获取到的用户信息:", res.data.selectUserByUserId);

                // 将用户信息更新到页面的 data 中
                this.setData({
                    userinfo: res.data.selectUserByUserId, // 假设 res 是完整的用户信息对象
                    nickname: res.data.selectUserByUserId.username || '默默', // 从用户信息中获取昵称
                    phone: res.data.selectUserByUserId.userphone || '', // 从用户信息中获取手机号
                    avatarUrl: res.data.selectUserByUserId.userurl || '' // 从用户信息中获取头像 URL
                });
            }
        ).catch(
            error => {
                console.error("获取用户信息失败:", error);
                wx.showToast({
                    title: '获取用户信息失败',
                    icon: 'none'
                });
            }
        );
    },

   // 更换头像
changeAvatar: function() {
    wx.chooseImage({
        count: 1,
        sizeType: ['compressed'],
        sourceType: ['album', 'camera'],
        success: (res) => {
            const tempFilePaths = res.tempFilePaths;
            console.log("这是上传的头像：");
            console.log(tempFilePaths);

            // 仅更新本地头像 URL，不立即上传到服务器
            this.setData({
                avatarUrl: tempFilePaths[0]
            });

            wx.showToast({
                title: '图片已上传',
                icon: 'none'
            });
        }
    });
},
// 验证手机号
validatePhone: function(phone) {
    // 简单的手机号格式验证（11位数字）
    const reg = /^1[3-9]\d{9}$/;
    return reg.test(phone);
},

    // 昵称变化
    onNicknameChange: function(e) {
        this.setData({
            nickname: e.detail.value
        });
    },

  // 手机号变化
onPhoneChange: function(e) {
    this.setData({
        phone: e.detail.value
    });
},

 // 保存修改
saveProfile: function() {
    const { avatarUrl, nickname, phone, userinfo } = this.data;

    // 简单验证
    if (!nickname.trim() && !phone.trim() && !avatarUrl) {
        wx.showToast({
            title: '请至少修改一项信息',
            icon: 'none'
        });
        return;
    }

    // 验证手机号
    if (phone.trim() !== '' && !this.validatePhone(phone)) {
        wx.showToast({
            title: '请输入有效的手机号',
            icon: 'none'
        });
        return;
    }

    // 显示加载中
    wx.showLoading({
        title: '保存中...',
    });

    // 调用后端接口保存用户信息
    updateUserInfo({
        userid: userinfo.userid,
        username: nickname || userinfo.username,
        userphone: phone || '', // 确保未填写时传递空字符串
        userurl: avatarUrl || userinfo.userurl
    }).then(res => {
        wx.hideLoading();
        console.log("保存的完整响应:", res); // 打印完整响应以便调试

        // 更健壮的成功判断
        if (res && res.code === 200) {
            wx.showToast({
                title: '保存成功',
                icon: 'success',
                duration: 2000
            });

            // 更新全局数据
            const app = getApp();
            if (app.globalData) {
                app.globalData.userInfo = {
                    avatarUrl: avatarUrl || userinfo.userurl,
                    nickname: nickname || userinfo.username,
                    phone: phone || userinfo.userphone
                };
            } else {
                console.error("globalData 未初始化");
            }

            // 更新本地存储
            wx.setStorageSync('userinfo', {
                ...userinfo,
                username: nickname || userinfo.username,
                userphone: phone || userinfo.userphone,
                userurl: avatarUrl || userinfo.userurl
            });
                // 测试提交
            // 延迟返回以确保 Toast 显示完整
            setTimeout(() => {
                wx.navigateBack({
                    success:()=>{
                        const pages=getCurrentPages();
                        const prevPage=pages[pages.length-1];
                        prevPage.onLoad();// 强制刷新前一个页面
                    }
                });
            }, 1500);
        } else {
            // 更详细的错误信息
            const errorMsg = res && res.data ? (res.data['更新状态'] || res.data.message || res.data.msg || '保存失败') : '保存失败';
            wx.showToast({
                title: errorMsg,
                icon: 'none',
                duration: 2000
            });
        }
    }).catch(err => {
        wx.hideLoading();
        console.error("保存出错:", err);
        wx.showToast({
            title: '网络错误或服务器异常',
            icon: 'none',
            duration: 2000
        });
    });
}
});